﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using entgpguayas.Code;
using Ext.Net;
using ENT.GP.Core.Lookup;
using System.Configuration;
using ENT.GP.Core.Proyecto;
using System.Xml;
using System.Xml.Xsl;


public partial class Proyectos_Desembolsos_Desembolsos : PaginasUsuario
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                //LimpiarFormulario();
                sTipoTransaccion.DataSource = TipoTransaccionLookup.GetNameValueList();
                sTipoTransaccion.DataBind();
                int IdProy = Convert.ToInt32(Request.QueryString.Get("IdP"));
                IdProyecto.SetValue(IdProy);
                Proyecto proy = Proyecto.GetProyecto(IdProy);
                txtValTotalPB.Number = proy.CostoTotal;//(proy.AportePlan - proy.Saldo);
               
                txtValSaldoPagar.Number=(proy.Saldo);//.ToString().Replace('.', ',');
                txtInversionTotal1.Number = (proy.CostoTotal);//.ToString().Replace('.', ','));
                txtValPlan1.Number = (proy.AportePlan);//.ToString().Replace('.', ','));
                txtValContraparte1.Number = (proy.AporteContraparte);//.ToString().Replace('.', ','));
                txtValContraparte2.Number = (proy.AporteContraparte2);//.ToString().Replace('.', ','));
                
                //Store1.DataSource = proy.Desembolsos;
                //Store1.DataBind();
                sDesembolsos.DataSource = proy.Desembolsos;
                sDesembolsos.DataBind();

               
            }
        }
        catch (Exception ex)
        {
            X.Msg.Show(new MessageBoxConfig
            {
                Buttons = MessageBox.Button.OK,
                Icon = MessageBox.Icon.ERROR,
                Title = "Fallo",
                Message = "Ocurrio un error al cargar los Desembolso"
            });
            System.Text.Encoding encod = System.Text.Encoding.UTF8;
            System.IO.FileStream log = System.IO.File.Open(ConfigurationManager.AppSettings.Get("PathLog"), System.IO.FileMode.Append);
            log.Write(encod.GetBytes(ex.Message), 0, encod.GetByteCount(ex.Message));
            log.Close();
        }
    }
    protected void Store1_Submit(object sender, StoreSubmitDataEventArgs e)
    {
        try
        {
            string format = this.FormatType.Value.ToString();

            XmlNode xml = e.Xml;

            this.Response.Clear();

            this.Response.ContentType = "application/vnd.ms-excel";
            this.Response.AddHeader("Content-Disposition", "attachment; filename=submittedData.xls");
            XslCompiledTransform xtExcel = new XslCompiledTransform();
            xtExcel.Load(MapPath("~/resources/Excel.xsl"));
            xtExcel.Transform(xml, null, Response.OutputStream);
            this.Response.End();
        }
        catch (Exception ex)
        {
            System.Text.Encoding encod = System.Text.Encoding.UTF8;
            System.IO.FileStream log = System.IO.File.Open(ConfigurationManager.AppSettings.Get("PathLog"), System.IO.FileMode.Append);
            log.Write(encod.GetBytes(ex.Message), 0, encod.GetByteCount(ex.Message));
            log.Close();
        }

        
    }
    #region Ventana Desembolso

    public void NuevoDesembolso_Click(object sender, DirectEventArgs e)
    {
        LimpiarDesembolso();

        MostrarVentanaDesembolso();
    }

    public void MostrarVentanaDesembolso()
    {
        wInfoDesembolso.Show();
        wInfoDesembolso.Center();
    }

    public void OcultarVentanaDesembolso()
    {
        wInfoDesembolso.Hide();
    }

    public void btnIngresarDesembolso_Click(object sender, DirectEventArgs e)
    {
        OcultarVentanaDesembolso();
    }

    public void btnCancelarDesembolso_Click(object sender, DirectEventArgs e)
    {
        LimpiarDesembolso();
        OcultarVentanaDesembolso();
    }

    public void LimpiarDesembolso()
    {
        txtDesembolso.Text = "";
        dfFecha.Value = "";
        //cbxTipoTransaccion.Value = "";
        txtResponsableDesembolso.Text = "";
        txtMontoTransferencia.Text = "0";
       
        txtValDesDif.Text = "0";
        txtValDesSup.Text = "0";
       
        txtPorDesDif.Text = "2";
        txtPorDesSup.Text = "4.50";
        txtValorPlanilla.Text = "0";
        txtObservacionInfoDesembolso.Text = "";
    }

    protected void btnGuardar_Click(object sender, DirectEventArgs e)
    {
        try
        {
            string jsonDesembolsos = e.ExtraParams["PDesembolsos"];
            int IdProy = Convert.ToInt32(Request.QueryString.Get("IdP"));
            Proyecto proy = Proyecto.GetProyecto(IdProy);
            //Proyecto Coordinadores
            StoreDataHandler sdhDesembolsos = new StoreDataHandler(jsonDesembolsos);
            ChangeRecords<ProyectoDesembolso> crsdhDesembolsos = sdhDesembolsos.ObjectData<ProyectoDesembolso>();
            foreach (ProyectoDesembolso desembolso in crsdhDesembolsos.Created)
            {
                proy.Desembolsos.Add(desembolso);
              
            }
            proy = proy.Save();
            X.Msg.Show(new MessageBoxConfig
            {
                Title = "Desembolsos",
                Message = "El desembolso se registro correctamente.....",
                Buttons = MessageBox.Button.OK,
                Icon = MessageBox.Icon.INFO
            });

        }
        catch (Exception ex)
        {
            X.Msg.Show(new MessageBoxConfig
            {
                Buttons = MessageBox.Button.OK,
                Icon = MessageBox.Icon.ERROR,
                Title = "Fallo",
                Message = "Ocurrio un error al guardar Desembolso"                
            });
            System.Text.Encoding encod = System.Text.Encoding.UTF8;
            System.IO.FileStream log = System.IO.File.Open(ConfigurationManager.AppSettings.Get("PathLog"), System.IO.FileMode.Append);
            log.Write(encod.GetBytes(ex.Message), 0, encod.GetByteCount(ex.Message));
            log.Close();
        }
    }
    /// <summary>
    /// Limpia el formulario
    /// </summary>
    void LimpiarFormulario()
    {
        
        txtValContraparte2.Reset();
        txtValContraparte1.Reset();
        txtValPlan1.Reset();
        txtValSaldoPagar.Reset();
        txtValTotalPB.Reset();
        

    }
    #endregion
}
